

<title>{$menu_title}</title>
<script type="text/html" template>
    <link rel="stylesheet" href="{{ layui.setter.base }}style/template.css?v={{ layui.admin.v }}-1" media="all">
</script>

<div class="layui-card layadmin-header">
    <div class="layui-breadcrumb" lay-filter="breadcrumb">
        <a lay-href="">{$p_menu_title}</a>
        {present name='menu_group_title' }
        <a><cite>{$menu_group_title}</cite></a>
        {/present}
        <a><cite>{$menu_title}</cite></a>
    </div>
</div>

<div class="layui-fluid">
            <div class="layui-card">
                <div class="layui-form layui-card-header layuiadmin-card-header-auto" lay-filter="app-forum-list">
                    <div class="layui-collapse ns-tips" style="display: none">
                        <div class="layui-colla-item">
                            <h2 class="layui-colla-title">操作提示<i class="layui-icon layui-colla-icon"></i></h2>
                            <ul class="layui-colla-content layui-show">
                                <li>1、店铺到期30日内可以申请续签</li>
                                <li>2、请认准官方收款账户，支付凭据上传之后请联系官方客服人员</li>
                            </ul>
                        </div>
                    </div>
                    {notempty name='suggest'}
                    <blockquote class="layui-elem-quote">{$suggest}</blockquote>
                    {/notempty}
                    {notempty name='warning'}
                    <blockquote class="layui-elem-quote " style="border-left: 5px solid red;">{$warning}</blockquote>
                    {/notempty}
                    {present name='searches'}
                    <form class="layui-form-item"    >
                        <!-- 搜索部分start -->
                        {volist name="searches" id="search"}
                        {include file="$search_path"/}
                        {/volist}
                        {volist name='hidden' id='vo'}
                        <input type="hidden" name="{$vo.name}" value="{$vo.value}">
                        {/volist}
                        <div class="layui-inline">
                            <button class="layui-btn" lay-submit lay-filter="{$namespace}-table-reload-btn">搜索</button>
                            <button type="reset" class="layui-btn layui-btn-primary">重置</button>
                        </div>
                    </form>
                    <!-- 搜索部分end -->
                    {/present}

                </div>
                <div class="layui-card-body">
                    <table class="layui-hide" id="{$namespace}-table" lay-filter="{$namespace}-table"></table>
                </div>
            </div>
</div>

<script type="text/html" id="{$namespace}-table-search">
    <div class="layui-btn-container">
        {volist name="buttonList" id="button"}
        {eq name='button.attr.event' value='ajax'}
      <button class="layui-btn layui-btn-sm  {$button.attr.class} " data-title="{$button.title}"
                data-width="{$button.attr.width|default=''}"
                data-height="{$button.attr.height|default=''}"
                data-message="{$button.attr.message|default=''}"  lay-event="{$button.attr.event}" data-url="{$button.attr.url}" >
            <i class="layui-icon layui-icon-face-smile layui-hide"></i>
            {$button.title}</button>
        {else/}
        <a class="layui-btn layui-btn-sm  {$button.attr.class} " lay-href="{$button.attr.url}" >
            <i class="layui-icon layui-icon-face-smile layui-hide"></i>
            {$button.title}</a>
        {/eq}
        {/volist}
    </div>
</script>
<script type="text/html" id="{$namespace}-table-action">
    {volist name='do_action' id='action'}

    {php}  if ($action['status'] instanceof \Closure) {  {/php}
    {{#  if(d.{$action['field']}){ }}
    {php} }else{  {/php}
    {{# var arr = {$action.status|json_encode};  if( true == arr.includes(d.status)){ }}
    {php}  }  {/php}
    {eq name='action.event' value='edit'}
        <a class="layui-btn layui-btn-xs {$action.attr.class}"
           lay-href="{$action.url}">
            {present name='action.attr.icon'}
            <i class="layui-icon layui-icon-{$action.attr.icon}"></i>
            {/present}
            {present name='action.attr.custom_icon'}
            <i class="iconfont icon-{$action.attr.custom_icon}"></i>
            {/present}
            {$action.title}
        </a>
    {else/}
        <a class="layui-btn layui-btn-xs {$action.attr.class}" lay-event="{$action.event}"
           data-title="{$action.title}"
           data-width="{$action.attr.width|default=''}"
           data-height="{$action.attr.height|default=''}"
           data-message="{$action.attr.message|default=''}"
           data-url="{$action.url}">
            {present name='action.attr.icon'}
            <i class="layui-icon layui-icon-{$action.attr.icon}"></i>
            {/present}
            {present name='action.attr.custom_icon'}
            <i class="iconfont icon-{$action.attr.custom_icon}"></i>
            {/present}
            {$action.title}
        </a>
    {/eq}
    {{#  } }}
    {/volist}
</script>
{volist name='templets' id='vo'}
{$vo|raw}
{/volist}

<script>
    Date.prototype.Format = function (fmt) { //author: meizz
        var o = {
            "M+" : this.getMonth()+1, //月份
            "d+" : this.getDate(), //日
            "h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12, //小时
            "H+" : this.getHours(), //小时
            "m+" : this.getMinutes(), //分
            "s+" : this.getSeconds(), //秒
            "q+" : Math.floor((this.getMonth()+3)/3), //季度
            "S" : this.getMilliseconds() //毫秒
        };
        if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
        for (var k in o)
            if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        return fmt;
    }
    layui.use(["laytpl",'admin','forum','table','soulTable',"element"], function(){
        var $ = layui.$
            ,admin = layui.admin
            ,view = layui.view
            ,form = layui.form
            ,element = layui.element
            ,soulTable = layui.soulTable
            ,table = layui.table , r = layui.device();
        form.render(null, 'app-forum-list');

        var excel_{$namespace}_table =  table.render({
            elem: '#{$namespace}-table'
            ,id: '{$namespace}-table'
            ,url:'{$searchPostUrl|raw}'
                ,cellMinWidth:120
                ,skin: 'line,row'
               , size: 'lg'
                , loading: true
            ,parseData: function(res){ //res 即为原始返回的数据
                return {
                    "code": res.code, //解析接口状态
                    "msg": res.message, //解析提示文本
                    "count": res.count, //解析数据长度
                    "data": res.data //解析数据列表
                };
            }
               // , skin: 'line' //行边框风格
                ,even: true //开启隔行背景
              //  ,size: 'sm' //小尺寸的表格
            ,toolbar: '#{$namespace}-table-search'
           ,defaultToolbar: {$toolbar|raw|json_encode}
            ,title: '用户数据表'
            ,cols: [{$keyList|raw|json_encode}]
            ,page: true
            ,overflow: {
            type: 'tips'
            // ,hoverTime: 500 // 悬停时间，单位ms, 悬停 hoverTime 后才会显示，默认为 0
            // ,color: 'black' // 字体颜色
            // ,bgColor: 'white' // 背景色
        }
            ,filter:  {$filter|raw|json_encode}
            ,excel:  {$excel|raw|json_encode}
            ,text: {
                none: '暂无相关数据' //默认：无数据。注：该属性为 layui 2.2.5 开始新增
            }
            ,autoSort: false
            ,done:function(res, curr, count){
                if (0!= res.code)
                {
                    layer.msg(res.msg);
                }else{
                    layui.each(res.data,function(index,d){
                       // console.log(index);//data-index
                        var row = $("[lay-id='{$namespace}-table']").find(".layui-table-body [data-index='" + index + "']");
                        if (row.length)
                        {
                            if (d._row_class)
                            {
                                row.addClass(d._row_class);
                            }
                            if (d._row_style)
                            {
                                row.css( d._row_style );
                            }
                        }

                        layui.each(d,function(index_d,d_d){
                            if(typeof d_d == 'object' && null != d_d )
                            {
                                if ($('#layer-photos-'+d.id+'-'+index_d+'-'+d_d.id).length)
                                {
                                    layer.photos({
                                        photos: '#layer-photos-'+d.id+'-'+index_d+'-'+d_d.id
                                        ,anim: 5 //0-6的选择，指定弹出图片动画类型，默认随机（请注意，3.0之前的版本用shift参数）
                                    });
                                }
                            }
                        })
                    })
                    soulTable.render(this)
                }

            }
        });

        //监听排序事件
        // TODO:携带带搜索条件
        table.on('sort({$namespace}-table)', function(obj){ //注：sort 是工具条事件名，test 是 table 原始容器的属性 lay-filter="对应的值"
            console.log(obj.field); //当前排序的字段名
            console.log(obj.type); //当前排序类型：desc（降序）、asc（升序）、null（空对象，默认排序）
            console.log(this); //当前排序的 th 对象
            //尽管我们的 table 自带排序功能，但并没有请求服务端。
            //有些时候，你可能需要根据当前排序的字段，重新向服务端发送请求，从而实现服务端排序，如：
            table.reload('{$namespace}-table', {
                initSort: obj //记录初始排序，如果不设的话，将无法标记表头的排序状态。
                // ,url: '/api/table/search'
                ,where: { //请求参数（注意：这里面的参数可任意定义，并非下面固定的格式）
                    order_field: obj.field //排序字段
                    ,order: obj.type //排序方式
                }
            });
           // layer.msg('服务端排序。order by '+ obj.field + ' ' + obj.type);
        });

        {neq name='auto_refresh' value='0'}
        setInterval(function (){

        //    if($(""))
            if($("#{$namespace}-table").length){

                table.reload('{$namespace}-table',{page: {
                        curr: 1 //重新从第 1 页开始
                    }});
            }
        }, {$auto_refresh})

        {/neq}
        function eventAjax(url,data,obj)
        {
            $.ajax({
                url:url, //请求的url地址
                dataType:"json", //返回格式为json
                async:true,//请求是否异步，默认为异步，这也是ajax重要特性
                type:"POST", //请求方式
                data:data, //请求方式
                success:function(req){
                    //请求成功时处理
                    if ( 0 == req.code)
                    {
                        if (req.reload)
                        {
                            table.reload('{$namespace}-table');
                        }
                        layer.msg(req.message);
                    }else if(-1 == req.code){
                        $(obj).html(req.message);
                        eventAjax(url,req,obj)
                    }
                    else{
                        layer.msg(req.message);
                    }
                },
                complete:function(){
                    //请求完成的处理
                },
                error:function(err){
                    //请求出错处理
                    layer.msg(JSON.stringify(err));
                }
            });
        }
        //头工具栏事件
        table.on('toolbar({$namespace}-table)', function(obj){
            var checkStatus = table.checkStatus(obj.config.id);

            switch(obj.event){
                case 'getCheckData':
                    var data = checkStatus.data;
                    if (data.length == 0)
                    {
                        layer.msg('没有选择');
                    }else{
                        layer.alert(JSON.stringify(data));
                    }
                    break;
                case 'ajax':
                    var url = $(this).data('url');
                    url = url.replace('{literal}{$auto_builder}{/literal}','{$namespace}');
                    var ids = new Array();
                    var data = checkStatus.data;
                    for (let i = 0; i < data.length; i++) {
                        ids.push(data[i]['id']);
                    }
                    if (data.length)
                    {
                        url = url+'&id='+ids.join(',');
                    }
                    eventAjax(url,data,this);
                    break;
                case 'popup':
                    console.log(1);
                    var url = $(this).data('url');
                    url = url.replace('{literal}{$auto_builder}{/literal}','{$namespace}');
                    var ids = new Array();
                    var data = checkStatus.data;

                    for (let i = 0; i < data.length; i++) {
                        ids.push(data[i]['id']);
                    }
                    if (data.length)
                    {
                        url = url+'&id='+ids.join(',');
                    }
                    popupFuc(url,obj,this)
                    break;
                case 'isAll':
                    layer.msg(checkStatus.isAll ? '全选': '未全选');
                    break;
                //自定义头工具栏右侧图标 - 提示
                case 'LAYTABLE_EXCEL':
                    var that = this;
                    var table_param = {$excel|raw|json_encode};
                    $(that).after('<ul class="layui-table-tool-panel"><li class="excel-select">导出选中</li><li class="excel-all">导出所有</li></ul>');
                    $('.layui-table-tool-panel .excel-all').click(function(){
                        table_param['filename'] =  table_param['filename']+'.xls';
                        soulTable.export(excel_{$namespace}_table, table_param);
                    });
                    $('.layui-table-tool-panel .excel-select').click(function(){
                        if (table.checkStatus('{$namespace}-table').data.length > 0) {
                            table_param['checked'] = true;
                            table_param['filename'] =  table_param['filename']+'_选中.xls';
                            soulTable.export(excel_{$namespace}_table, table_param);
                        } else {
                            layer.msg('勾选数据不能为空！');
                        }
                    });
                    break;
                case 'LAYTABLE_TIPS':
                    layer.alert('这是工具栏右侧自定义的一个图标按钮');
                    break;
            };
        });

        //监听工具条
        function popupFuc(url,obj,btn)
        {
            element.tabAdd('demo', {
                title: '新选项'+ (Math.random()*1000|0) //用于演示
                ,content: '内容'+ (Math.random()*1000|0)
                ,id: new Date().getTime() //实际使用一般是规定好的id，这里以时间戳模拟下
            })
          /*  admin.popup({
                title: $(btn).data('title')
                ,area: [$(btn).data('width'), $(btn).data('height')]
                ,id: 'LAY-popup-workorder-add'
                ,success: function(layero, index){
                    view(this.id).render(url).done(function(){
                        form.render(null, 'layuiadmin-form-workorder');
                        //监听提交
                        form.on('submit({$namespace})', function(data){
                            console.log(121);
                            var field = data.field; //获取提交的字段
                            //提交 Ajax 成功后，关闭当前弹层并重载表格
                            $.ajax({
                                url:url, //请求的url地址
                                dataType:"json", //返回格式为json
                                async:true,//请求是否异步，默认为异步，这也是ajax重要特性
                                type:"POST", //请求方式
                                data:field,
                                success:function(req){
                                    //请求成功时处理
                                    if ( 0 == req.code)
                                    {
                                        layer.msg(req.message);
                                        layui.table.reload('{$namespace}-table'); //重载表格
                                        layer.close(index); //执行关闭
                                    }else{
                                        layer.msg(req.message);
                                    }
                                },
                                complete:function(){
                                    //请求完成的处理
                                },
                                error:function(err){
                                    //请求出错处理
                                    layer.msg(JSON.stringify(err));
                                }
                            });

                            //$.ajax({});
                        });
                    });
                }
            });*/

        }
        //监听行工具事件
        table.on('tool({$namespace}-table)', function(obj){
            var data = obj.data;
            if(obj.event === 'del'){
                layer.confirm('真的删除行么', function(index){
                    obj.del();
                    layer.close(index);
                });
            } else if(obj.event === 'edit'){

                element.tabAdd('layadmin-layout-tabs', {
                    title: '新选项'+ (Math.random()*1000|0) //用于演示
                    ,content: '内容'+ (Math.random()*1000|0)
                    ,id: new Date().getTime() //实际使用一般是规定好的id，这里以时间戳模拟下
                })
                return;
                var url = $(this).data('url');
                url = url.replace('{literal}{$auto_builder}{/literal}','{$namespace}');
                for(var key in obj.data){
                    url = url.replace('{$'+key+'}',obj.data[key]);
                }

                admin.popup({
                    title: $(this).data('title')
                    ,area: [$(this).data('width')+'px', $(this).data('height')+'px']
                    ,id: 'LAY-popup-workorder-add'
                    ,success: function(layero, index){
                        view(this.id).render(url).done(function(){
                            form.render(null, 'layuiadmin-form-workorder');
                            //监听提交
                            form.on('submit({$namespace})', function(data){
                                var field = data.field; //获取提交的字段
                                //提交 Ajax 成功后，关闭当前弹层并重载表格
                                $.ajax({
                                    url:url, //请求的url地址
                                    dataType:"json", //返回格式为json
                                    async:true,//请求是否异步，默认为异步，这也是ajax重要特性
                                    type:"POST", //请求方式
                                    data:field,
                                    success:function(req){
                                        //请求成功时处理
                                        if ( 0 == req.code)
                                        {
                                            layer.msg(req.message);
                                            layui.table.reload('{$namespace}-table'); //重载表格
                                            layer.close(index); //执行关闭
                                        }else{
                                            layer.msg(req.message);
                                        }
                                    },
                                    complete:function(){
                                        //请求完成的处理
                                    },
                                    error:function(err){
                                        //请求出错处理
                                        layer.msg(JSON.stringify(err));
                                    }
                                });

                                //$.ajax({});
                            });
                        });
                    }
                });

            }else if(obj.event === 'dialog'){

                var url = $(this).data('url');
                url = url.replace('{literal}{$auto_builder}{/literal}','{$namespace}');
                for(var key in obj.data){
                    url = url.replace('{$'+key+'}',obj.data[key]);
                }

                admin.popup({
                    title: $(this).data('title')
                    ,area: [$(this).data('width')+'px', $(this).data('height')+'px']
                    ,id: 'LAY-popup-workorder-add'
                    ,success: function(layero, index){
                        view(this.id).render(url).done(function(){
                            form.render(null, 'layuiadmin-form-workorder');
                            //监听提交
                            form.on('submit({$namespace})', function(data){
                                var field = data.field; //获取提交的字段
                                //提交 Ajax 成功后，关闭当前弹层并重载表格
                                $.ajax({
                                    url:url, //请求的url地址
                                    dataType:"json", //返回格式为json
                                    async:true,//请求是否异步，默认为异步，这也是ajax重要特性
                                    type:"POST", //请求方式
                                    data:field,
                                    success:function(req){
                                        //请求成功时处理
                                        if ( 0 == req.code)
                                        {
                                            layer.msg(req.message);
                                            layui.table.reload('{$namespace}-table'); //重载表格
                                            layer.close(index); //执行关闭
                                        }else{
                                            layer.msg(req.message);
                                        }
                                    },
                                    complete:function(){
                                        //请求完成的处理
                                    },
                                    error:function(err){
                                        //请求出错处理
                                        layer.msg(JSON.stringify(err));
                                    }
                                });

                                //$.ajax({});
                            });
                        });
                    }
                });

            } else if(obj.event === 'ajax'){

                var url = $(this).data('url');
                url = url.replace('{literal}{$auto_builder}{/literal}','{$namespace}');
                for(var key in obj.data){
                    url = url.replace('{$'+key+'}',obj.data[key]);
                }
                var obj = this;
                layer.confirm($(this).data('message'), {
                    btn: ['确认','取消'] //按钮
                }, function(){
                    eventAjax(url,{},obj);
                }, function(){

                });

            }
        });

        //监听提交
        form.on('submit({$namespace}-table-reload-btn)', function(data){
             table.reload('{$namespace}-table', {
              page: {
                  curr: 1 //重新从第 1 页开始
              }
              ,where: {
                  field: data.field
              }
          });
            return false;
        });

    });
</script>